package model;

import java.util.ArrayList;
import java.util.List;

import Observer.Observable;

import vue.ObserveurJoueur;

public class Joueur extends Observable<Joueur, ObserveurJoueur>{
	private CreateurPersonnage fabrique;
	private int numero;
	private ArrayList<Personnage> perso;
	
	public Joueur (CreateurPersonnage fabrique, int numero) {
		perso = new ArrayList<Personnage>();
		this.setNumero(numero);
		this.fabrique = fabrique;
		this.fabrique.setJoueur(this);
	}

	public CreateurPersonnage getFabrique() {
		return fabrique;
	}

	public void setFabrique(CreateurPersonnage fabrique) {
		this.fabrique = fabrique;
	}

	public ArrayList<Personnage> getPerso() {
		return perso;
	}

	public void setPerso(ArrayList<Personnage> perso) {
		this.perso = perso;
		notifier(this);
	}
	
	public void ajouterPerso(Personnage person) {
		perso.add(person);
		notifier(this);
	}

	public int getNumero() {
		return numero;
	}

	private void setNumero(int numero) {
		this.numero = numero;
	}

	public void notifier() {
		notifier(this);
	}
}
